Grid computing services, utility-based data centers, and other types of resource-on-demand systems are becomingly increasingly popular as a highly scalable means for utilizing computer resources to meet the computing demands of users. However, managing these resource-on-demand systems is a difficult task that typically requires a significant amount of time and labor and which conventional network management software is not designed to handle.
Many management tasks are performed manually, which tends to be time consuming and costly. For example, selecting computer resources from a pool of resources to assign to a particular user's computing demands is typically performed manually. The monitoring of the pool of resources may be performed using conventional management tools. However, many administrators may be required, especially for large resource-on-demand systems such as large utility data centers, to make resource allocation decisions, resulting either in an ineffective use of resources or in costly and time-consuming management tasks.